#import <Foundation/Foundation.h>

typedef NS_ENUM(NSInteger, GridType) {
    GridTypeEmpty = 0,
    GridTypeWeapon,
    GridTypeHealthPotion,
    GridTypeEnemy,
    GridTypeBoss,
    GridTypePlayer
};

typedef NS_ENUM(NSInteger, GameState) {
    GameStatePlaying = 0,
    GameStateWin,
    GameStateLose
};

@interface Position : NSObject <NSCopying>

@property (nonatomic, assign) NSInteger row;
@property (nonatomic, assign) NSInteger column;

- (instancetype)initWithRow:(NSInteger)row column:(NSInteger)column;
- (BOOL)isEqual:(id)object;

@end

@interface GridItem : NSObject

@property (nonatomic, assign) GridType type;
@property (nonatomic, assign) NSInteger value;
@property (nonatomic, strong) Position *position;
@property (nonatomic, assign) BOOL isRevealed;

- (instancetype)initWithType:(GridType)type value:(NSInteger)value position:(Position *)position;

@end